package br.com.minhascontas.activity.grupo;

import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import br.com.example.minhascontas.R;
import br.com.minhascontas.DAO.MinhasContasOpenHelper;
import br.com.minhascontas.model.Grupo;
import br.com.minhascontas.model.ItemGrupo;

public class CadastroItemGrupo extends Activity {

	private ItemGrupo itemGrupo = new ItemGrupo();
	private MinhasContasOpenHelper dataSource = new MinhasContasOpenHelper(this);

	private Spinner spGrupo;
	private Grupo grupo;
	private Button btnSalvar;
	private EditText etNomeItem;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.cadastro_item_grupo);

		btnSalvar = (Button) findViewById(R.id.btnSalvarItemGrupo);
		spGrupo = (Spinner) findViewById(R.id.spGrupo);
		etNomeItem = (EditText) findViewById(R.id.etNomeItem);

		itemGrupo = (ItemGrupo) getIntent().getSerializableExtra(
				"itemSelecionado");

		populaspGrupo();

		if (itemGrupo == null) {
			itemGrupo = new ItemGrupo();
		} else {
			btnSalvar.setText("Editar");

			etNomeItem.setText(itemGrupo.getNome());

			// procura pelo grupo do Item dentro do spinner e seleciona ele
			for (int i = 0; i < spGrupo.getCount(); i++) {
				Grupo _grupo = new Grupo();
				_grupo = (Grupo) spGrupo.getItemAtPosition(i);
				if (_grupo.getNome().equals(itemGrupo.getNomeGrupo())) {
					spGrupo.setSelection(i);
				}
			}
		}

		spGrupo.setOnItemSelectedListener(new OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> adapter, View view,
					int pos, long id) {
				// TODO Auto-generated method stub
				grupo = (Grupo) adapter.getItemAtPosition(pos);
				
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub

			}
		});

		btnSalvar.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub

				itemGrupo.setNome(etNomeItem.getEditableText().toString());
				itemGrupo.setGrupo(grupo);

				if (itemGrupo.getId() == null) {
					dataSource.inserirItemGrupo(itemGrupo);
				} else {
					dataSource.alterarItemGrupo(itemGrupo);
				}
				dataSource.close();
				finish();
			}
		});
	}

	private void populaspGrupo() {
		// TODO Auto-generated method stub

		List<Grupo> labels = dataSource.listarGrupo();

		ArrayAdapter<Grupo> dataAdapter = new ArrayAdapter<Grupo>(this,
				android.R.layout.simple_list_item_1, labels);

		dataAdapter
				.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

		spGrupo.setAdapter(dataAdapter);
		dataSource.close();
	}
}
